package cn.well.cloud.mutidatasource;

import cn.well.cloud.mutidatasource.Enum.DataSourceAddressEnum;

/**
 * datasource的上下文
 * 2020年4月14日
 * @author wison
 *
 */
public class DataSourceContextHolder {

    private static final ThreadLocal<DataSourceAddressEnum> CONTEXT_HOLDER = ThreadLocal.withInitial(() -> DataSourceAddressEnum.MASTER);


    /**
     * 设置数据源
     *
     * @param dataSourceAddressEnum 数据库类型
     */
    public static void setCurrentDataSource(DataSourceAddressEnum dataSourceAddressEnum) {
        CONTEXT_HOLDER .set(dataSourceAddressEnum);
    }

    /**
     * 获取数据源类型
     */
    public static DataSourceAddressEnum  getCurrentDataSource() {
        return CONTEXT_HOLDER .get();
    }

    /**
     * 清除数据源类型
     */
    public static void clearDataSourceType() {
        CONTEXT_HOLDER .remove();
    }
}
